package cn.itcast.web.controller.system;

import cn.itcast.domain.system.Module;
import cn.itcast.domain.system.User;
import cn.itcast.service.system.ModuleService;
import cn.itcast.web.controller.BaseController;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
@RequestMapping("/system/module")
public class ModuleController extends BaseController {

	@Autowired
	private ModuleService moduleService;

	/**
	 * 分页 （分页参数）
	 * 业务：调用service
	 */
	@RequestMapping("/list")
	public String list(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "5")int size) {
		PageInfo info = moduleService.findAll(page,size); //分页page，size，
		request.setAttribute("page",info);
		return "system/module/module-list";
	}

	/**
	 * 进入保存
	 *  1.查询所有模块（不分页）
	 *  2.跳转页面
	 */
	@RequestMapping("/toAdd")
	public String toAdd() {
		//1.查询所有模块
		List list = moduleService.findAll();
		request.setAttribute("menus",list);
		//2.跳转页面
		return  "system/module/module-add";
	}

	@RequestMapping("/toUpdate")
	public String toUpdate(String id) {
		//根据id查询模块
		Module module = moduleService.findById(id);
		request.setAttribute("module",module);
		//查询所有模块
		List list = moduleService.findAll();
		request.setAttribute("menus",list);
		//跳转页面回显
		return  "system/module/module-update";
	}

	/**
	 * 新增或者修改
	 *   参数：Module对象
	 */
	@RequestMapping("/edit")
	public String edit(Module module) {
		//1.判断是否具有id
		if (StringUtils.isEmpty(module.getId())) {
			//2.没有id，调用service保存
			moduleService.save(module);
		}else {
			//3.存在id，调用service更新
			moduleService.update(module);
		}
		//4.重定向到列表
		return  "redirect:/system/module/list.do";
	}

	//删除
	@RequestMapping("/delete")
	public String delete(String id) {
		moduleService.delete(id);
		return  "redirect:/system/module/list.do";
	}

}
